<?php
namespace app\admin\controller;
use think\Db;
use app\admin\model\Admin as AdminModel;
use app\admin\controller\Common;
use app\admin\controller\Auth;
class Admin extends Common
{
    
    public function lst()
    {
        $auth=new Auth();
        //$data=$auth->getGroups(session('id'));
        //dump($data);die;
        $admin=new AdminModel();
        $res=$admin->getadmin();
        //dump($res);die;
        foreach ($res as $k => $v){
            $_grouptitle=$auth->getGroups($v['id']);
            $v['title']=$_grouptitle['0']['title'];
        }
        
        $this->assign('res',$res);
        //dump($res);die;
        //dump(db('admin')->where('id','>=',30)->select());die;
        //dump($admin->select());die;
        return view('list');
    }

    //管理员添加
    public function add()
    {
        if(request()->isPost()){
            /*//第一种添加方式
            $data=input('post.');
            //dump($data);die;
           $res= db('admin')->insert($data);*/

           /*//第二种方法
           $res=Db::name('admin')->insert(input('post.'));*/

           //第三种方法model层操作
            $admin=new AdminModel();
            $data=input('post.');

            $validate = \think\Loader::validate('Admin');//实例化link验证器
            if(!$validate->scene('add')->check($data)){
                $this->error($validate->getError());
            }
           $res=$admin->addadmin($data);
           if($res){
            $this->success('添加管理员成功',url('admin/lst'));
           }else{
            $this->error('添加管理员失败！');
           }
            return ;
        }
        $authgroup=db('auth_group')->select();
        $this->assign('authgroup',$authgroup);
        return view('add');
    }

     public function edit($id)
    { 
        $admins=db('admin')->field('id,name')->find($id);
        if(request()->isPost()){
            $data=input('post.');

            $validate = \think\Loader::validate('Admin');//实例化link验证器
            if(!$validate->scene('edit')->check($data)){
                $this->error($validate->getError());
            }
            $admin=new AdminModel();
            $res=$admin->edit($data,$admins);
           if($res == 2){
            $this->error('管理员名称不得为空！');
           }

        if($res !==false){
            $this->success('修改密码成功',url('admin/lst'));
           }else{
            $this->error('修改密码失败');
           }
            return;
        }
    
        if(!$admins){
            $this->error('管理员不存在！');
        }
        $auths=db('auth_group_access')->where(array('uid'=>$id))->find();
        //dump($auths);die;
        $authgroup=db('auth_group')->select();
        $this->assign('authgroup',$authgroup);
        $this->assign('adminedit',$admins);
        $this->assign('auths',$auths);
        return view('edit');
    }

    public function delete($id){
        $admin=new AdminModel();
        $res=$admin->deladmin($id);

        if($res == 1){
         $this->success('删除管理员成功',url('admin/lst'));
           }else{
            $this->error('删除管理员失败');
        }
    }

    //session清空退出
    public function loginout(){
        session(null);
        $this->success('退出成功，欢迎您下次回来!',url('admin/login/index'));
    }
}
